#coding=utf-8 
'''
Created on 2012-10-27

@author: infear
'''
#http://blog.csdn.net/v_JULY_v/article/details/6057286
#88.2005年11月金山笔试题。编码完成下面的处理函数。
#函数将字符串中的字符'*'移到串的前部分，
#前面的非'*'字符后移，但不能改变非'*'字符的先后顺序，函数返回串中字符'*'的数量。
#如原始串为：ab**cd**e*12，
#处理后为*****abcde12，函数并返回值为5。（要求使用尽量少的时间和辅助空间）
def swapStar(_str):
    str_list=list(_str)
    l=len(_str)-1
    p1=p2=l
    while p1!=-1:
        while p2!=-1 and str_list[p2]!="*":
            p2=p2-1
        p1=p2
        while p1!=-1 and str_list[p1]=="*":
            p1=p1-1
        if p1!=-1 and p2!=-1:
            str_list[p1],str_list[p2]=str_list[p2],str_list[p1]
    return str(str_list),p2-p1

print swapStar("ab**cd**e*12")
        